package com.zz.inventory.service;

import java.util.List;
import com.zz.inventory.domain.Classes;
import com.zz.inventory.domain.SchoolStudentCountDTO;
import com.zz.inventory.domain.ServiceResult;

/**
 * 班级管理Service接口
 * 
 * @author ruoyi
 * @date 2025-07-03
 */
public interface IClassesService 
{
    /**
     * 查询班级管理
     * 
     * @param classId 班级管理主键
     * @return 班级管理
     */
    public Classes selectClassesByClassId(Long classId);

    /**
     * 查询班级管理列表
     * 
     * @param classes 班级管理
     * @return 班级管理集合
     */
    public List<Classes> selectClassesList(Classes classes);

    /**
     * 新增班级管理
     * 
     * @param classes 班级管理
     * @return 结果
     */
    public int insertClasses(Classes classes);

    /**
     * 修改班级管理
     * 
     * @param classes 班级管理
     * @return 结果
     */
    public int updateClasses(Classes classes);

    /**
     * 批量删除班级管理
     * 
     * @param classIds 需要删除的班级管理主键集合
     * @return 结果
     */
    public int deleteClassesByClassIds(Long[] classIds);

    /**
     * 删除班级管理信息
     * 
     * @param classId 班级管理主键
     * @return 结果
     */
    public int deleteClassesByClassId(Long classId);
    /**
     * 删除班级（带学生校验）
     * @param classIds 班级ID集合
     * @return 结果
     */
    ServiceResult<Integer> deleteClassesWithStudentCheck(Long[] classIds);
    /**
     * 统计每个学校的学生人数
     * @return 学校ID、名称、学生人数列表
     */
    List<SchoolStudentCountDTO> getSchoolStudentCount();
}
